From d8e9feea97521ab11259ca4b3c205d3ac5751ccd Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Sat, 21 Nov 2009 18:31:50 +0000 Subject: [PATCH] Fix accidental use of the format mutex instead of the debug mutex. The memory statistics book-keeping was reusing the BablFormat flag mutex thus deadlocking with pthreads mutexes since they are not recursive by default. --- babl/babl-memory.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/babl/babl-memory.c b/babl/babl-memory.c index 304651c..b228447 100644 --- a/babl/babl-memory.c +++ b/babl/babl-memory.c @@ -118,9 +118,9 @@ babl_malloc (size_t size) BAI (ret)->signature = signature; BAI (ret)->size = size; #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); mallocs++; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif return (void *) (ret); } @@ -140,11 +140,11 @@ babl_dup (void *ptr) memcpy (ret, ptr, BAI (ptr)->size); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); dups++; mallocs--; + babl_mutex_unlock (babl_debug_mutex); #endif - babl_mutex_unlock (babl_format_mutex); return NULL; } @@ -193,9 +193,9 @@ babl_free (void *ptr, BAI (format->image_template)->signature = NULL; free_f (BAI (format->image_template)); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); frees++; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif } format->image_template = NULL; @@ -213,9 +213,9 @@ babl_free (void *ptr, BAI (ptr)->signature = NULL; free_f (BAI (ptr)); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); frees++; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif } @@ -258,9 +258,9 @@ babl_realloc (void *ptr, memcpy (ret, ptr, babl_sizeof (ptr)); babl_free (ptr); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); reallocs++; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif return ret; } @@ -284,10 +284,10 @@ babl_calloc (size_t nmemb, memset (ret, 0, nmemb * size); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); callocs++; mallocs--; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif return ret; } @@ -315,10 +315,10 @@ babl_strdup (const char *s) strcpy (ret, s); #if BABL_DEBUG_MEM - babl_mutex_lock (babl_format_mutex); + babl_mutex_lock (babl_debug_mutex); strdups++; mallocs--; - babl_mutex_unlock (babl_format_mutex); + babl_mutex_unlock (babl_debug_mutex); #endif return ret; } -- 2.30.2